'use strict';

var is = require('bpmn-js/lib/util/ModelUtil').is,
    eventDefinitionHelper = require('../../../helper/EventDefinitionHelper'),
    error = require('./implementation/ErrorEventDefinition');

var forEach = require('lodash/forEach');


module.exports = function (group, element, bpmnFactory, translate) {

    var errorEvents = [
        'bpmn:StartEvent',
        'bpmn:BoundaryEvent',
        'bpmn:EndEvent'
    ];

    forEach(errorEvents, function (event) {
        if (is(element, event)) {

            var errorEventDefinition = eventDefinitionHelper.getErrorEventDefinition(element);

            if (errorEventDefinition) {
                var isCatchingErrorEvent = is(element, 'bpmn:StartEvent') || is(element, 'bpmn:BoundaryEvent');

                var showErrorCodeVariable = isCatchingErrorEvent,
                    showErrorMessageVariable = isCatchingErrorEvent;

                error(
                    group,
                    element,
                    bpmnFactory,
                    errorEventDefinition,
                    showErrorCodeVariable,
                    showErrorMessageVariable,
                    translate);
            }
        }
    });
};
